package com.heima.freemarker.controller;

import com.heima.freemarker.pojo.Student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.w3c.dom.ls.LSInput;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/hello")
public class HelloController {
    /**
     * Model 表示模型 作为参数使用，返回值必须是字符串
     * @return
     */
    @GetMapping
    public  String modelTest(Model model){
        //传输数据
        model.addAttribute("name", "张三");
        //跳转页面，return后面字符串表示跳转页面的名称
        return "01-basic";
    }

   //ModelMap 表示Map集合 作为参数使用，返回值必须是字符串
    @GetMapping("/map")
    public  String mapTest(ModelMap model){
        //传输数据
        model.put("name","李四");
        //跳转页面，return后面字符串表示跳转页面的名称
        return "01-basic";
    }

    //ModelAndView 表示模和视图 作为返回值使用
    @GetMapping("/mav")
    public  ModelAndView mavTest(){
        //传输数据
        ModelAndView mav=new ModelAndView();
        mav.addObject("name", "王五");
        //跳转页面
        mav.setViewName("01-basic");
        return mav;
    }


    @GetMapping("/list")
    public  String listTest(Model model){
        //传输数据
        List<Student> list=new ArrayList<>();
        Student student=new Student();
        student.setName("张三");
        student.setAge(23);
        student.setMoney(200D);

        Student student1=new Student();
        student1.setName("李四");
        student1.setAge(24);
        student1.setMoney(300D);

        list.add(student1);
        list.add(student);

        model.addAttribute("stus",list);

        Map<String, Object> map=new HashMap<>();
        map.put("stu1",student);
        map.put("stu2",student1);

        model.addAttribute("stuMap", map);

        //跳转页面，return后面字符串表示跳转页面的名称
        return "02-list";
    }


}
